1. Technical Field
The present disclosure relates to databases and, more specifically, to uninterrupted reorganization and movement of databases.
2. Description of the Related Art
A database is an organized collection of data. Most databases are computerized and are stored on computer-readable storage devices, such as hard disks. Computerized databases are frequently built, maintained and called upon to store, organize, and retrieve useful information as needed. A database management system (DBMS) is generally a computer program that is designed to store, organize, and retrieve computerized database information.
Many databases organize information as a collection of tables. Each table may include one or more entries and each entry may have one or more attributes. Each attribute may then be assigned one or more values. Each table may include one or more columns; a single column generally stores a single attribute for each entry. Each table may include of one or more rows, a single row generally stores a single entry with all of its attributes.
In certain databases, for example relational databases, two or more tables may be related to each other by virtue of sharing common entries and/or common elements. A DBMS for relational databases may utilize various indexes in responding to queries.
Database entries may be hierarchically arranged such that some entries are parents of other entries which are children.
Indexing is a technique used by most current DBMSs to speed up particular kinds of queries. For example, redundant information may be internally generated and stored in the database tables to more quickly locate table entries. The most common kind of index is a sorted list of the contents of some particular table column, with pointers to the row associated with the value.
There are multiple different forms of indexed databases. One such form is a fixed-indexed database. The fixed-index database includes an index for assisting in quickly responding to queries that has been specifically organized for a particular database. While the fixed-indexed database may be able to quickly respond to queries, it may be necessary to re-organize the fixed indexes every time the database is modified. For example, it may be necessary to re-organize fixed indexes as new records are added to the database. Re-organizing an index is the process of updating the index to reflect a modified database, for example to reflect the addition of a new database entry. For example, where a fixed-index is the sorted list described above, re-organization may be the re-sorting of the list after a new entry has been added.
Another form of indexed database is the dynamically indexed database. Dynamically indexed databases may utilize indexes that may be modified without having to re-organize the index every time the database is modified. While the dynamically indexed database may not be as fast as the fixed-indexed database, the dynamically indexed database may require less frequent re-organization.
However, with either form of indexed database, periodic re-organization may be required. Re-organization of database indexes often requires that the database be made temporary unavailable. While re-organization is underway, I/O activity, such as for example queries, reads, and updates may be prevented.
There may be other reasons why a database may be made temporarily unavailable. For example, it may be desirable to move a database from one device to another. For example, a database may be moved from one server to another. Moving a database may require that the database be made temporarily unavailable.
Users of modern DBMS are becoming increasingly less tolerant of DBMS downtime. There is therefore a need to utilize a system and method for re-organizing database tables without impeding database I/O activity.